public class 守护线程 {
    /*
     主线程结束后，JVM 直接退出。
    守护线程没有显式停止，但不会阻止程序结束。
    这正体现了守护线程的“后台服务”特性。
    */
    public static void main(String[] args) {
        // 创建一个守护线程，用于定期刷新日志
        Thread logFlusher = new Thread(() -> {
            while (true) {
                System.out.println("[守护线程] 正在刷新日志到磁盘...");
                try {
                    Thread.sleep(2000); // 每 2 秒刷新一次
                } catch (InterruptedException e) {
                    break; // 被打断时安全退出
                }
            }
        });

        logFlusher.setDaemon(true); // 设置为守护线程
        logFlusher.start();

        // 主业务线程：模拟应用的主要逻辑
        System.out.println("[主线程] 应用正在运行...");
        try {
            Thread.sleep(5000); // 模拟程序运行 5 秒
            //System.in.read();//也可 以这样暂停。输入一个字符，按回车
        } catch (Exception e) {
            e.printStackTrace();
        }

        System.out.println("[主线程] 应用运行结束，JVM 即将退出。");
    }
}
